home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / config / Makefile.pre.in < prev    next >
Makefile  |  2005-10-18  |  32KB  |  1,022 lines

  1. # Top-level Makefile for Python
  2. #
  3. # As distributed, this file is called Makefile.pre.in; it is processed
  4. # into the real Makefile by running the script ./configure, which
  5. # replaces things like @spam@ with values appropriate for your system.
  6. # This means that if you edit Makefile, your changes get lost the next
  7. # time you run the configure script.  Ideally, you can do:
  8. #
  9. #    ./configure
  10. #    make
  11. #    make test
  12. #    make install
  13. #
  14. # If you have a previous version of Python installed that you don't
  15. # want to overwrite, you can use "make altinstall" instead of "make
  16. # install".  Refer to the "Installing" section in the README file for
  17. # additional details.
  18. #
  19. # See also the section "Build instructions" in the README file.
  20.  
  21. # === Variables set by makesetup ===
  22.  
  23. MODOBJS=        _MODOBJS_
  24. MODLIBS=        _MODLIBS_
  25.  
  26. # === Variables set by configure
  27. VERSION=    @VERSION@
  28. srcdir=        @srcdir@
  29. VPATH=        @srcdir@
  30.  
  31. CC=        @CC@
  32. CXX=        @CXX@
  33. LINKCC=        @LINKCC@
  34. AR=        @AR@
  35. RANLIB=        @RANLIB@
  36.  
  37. # Shell used by make (some versions default to the login shell, which is bad)
  38. SHELL=        /bin/sh
  39.  
  40. # Use this to make a link between python$(VERSION) and python in $(BINDIR)
  41. LN=        @LN@
  42.  
  43. # Portable install script (configure doesn't always guess right)
  44. INSTALL=    @INSTALL@
  45. INSTALL_PROGRAM=@INSTALL_PROGRAM@
  46. INSTALL_SCRIPT= @INSTALL_SCRIPT@
  47. INSTALL_DATA=    @INSTALL_DATA@
  48. # Shared libraries must be installed with executable mode on some systems;
  49. # rather than figuring out exactly which, we always give them executable mode.
  50. # Also, making them read-only seems to be a good idea...
  51. INSTALL_SHARED= ${INSTALL} -m 555
  52.  
  53. MAKESETUP=      $(srcdir)/Modules/makesetup
  54.  
  55. # Compiler options
  56. OPT=        @OPT@
  57. BASECFLAGS=    @BASECFLAGS@
  58. CFLAGS=        $(BASECFLAGS) $(OPT)
  59. CPPFLAGS=    -I. -I$(srcdir)/Include
  60. LDFLAGS=    @LDFLAGS@
  61. LDLAST=        @LDLAST@
  62. SGI_ABI=    @SGI_ABI@
  63. CCSHARED=    @CCSHARED@
  64. LINKFORSHARED=    @LINKFORSHARED@
  65. # Extra C flags added for building the interpreter object files.
  66. CFLAGSFORSHARED=@CFLAGSFORSHARED@
  67. # C flags used for building the interpreter object files
  68. PY_CFLAGS=    $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
  69.  
  70.  
  71. # Machine-dependent subdirectories
  72. MACHDEP=    @MACHDEP@
  73.  
  74. # Install prefix for architecture-independent files
  75. prefix=        @prefix@
  76.  
  77. # Install prefix for architecture-dependent files
  78. exec_prefix=    @exec_prefix@
  79.  
  80. # Expanded directories
  81. BINDIR=        $(exec_prefix)/bin
  82. LIBDIR=        $(exec_prefix)/lib
  83. MANDIR=        @mandir@
  84. INCLUDEDIR=    @includedir@
  85. CONFINCLUDEDIR=    $(exec_prefix)/include
  86. SCRIPTDIR=    $(prefix)/lib
  87.  
  88. # Detailed destination directories
  89. BINLIBDEST=    $(LIBDIR)/python$(VERSION)
  90. LIBDEST=    $(SCRIPTDIR)/python$(VERSION)
  91. INCLUDEPY=    $(INCLUDEDIR)/python$(VERSION)
  92. CONFINCLUDEPY=    $(CONFINCLUDEDIR)/python$(VERSION)
  93. LIBP=        $(LIBDIR)/python$(VERSION)
  94.  
  95. # Symbols used for using shared libraries
  96. SO=        @SO@
  97. LDSHARED=    @LDSHARED@
  98. BLDSHARED=    @BLDSHARED@
  99. DESTSHARED=    $(BINLIBDEST)/lib-dynload
  100.  
  101. # Executable suffix (.exe on Windows and Mac OS X)
  102. EXE=        @EXEEXT@
  103. BUILDEXE=    @BUILDEXEEXT@
  104.  
  105. # Short name and location for Mac OS X Python framework
  106. PYTHONFRAMEWORK=    @PYTHONFRAMEWORK@
  107. PYTHONFRAMEWORKDIR=    @PYTHONFRAMEWORKDIR@
  108. PYTHONFRAMEWORKPREFIX=    @PYTHONFRAMEWORKPREFIX@
  109. PYTHONFRAMEWORKINSTALLDIR= @PYTHONFRAMEWORKINSTALLDIR@
  110. # Deployment target selected during configure, to be checked
  111. # by distutils
  112. CONFIGURE_MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@
  113. # Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
  114. OTHER_LIBTOOL_OPT=@OTHER_LIBTOOL_OPT@
  115.  
  116. # Environment to run shared python without installed libraries
  117. RUNSHARED=       @RUNSHARED@
  118.  
  119. # Modes for directories, executables and data files created by the
  120. # install process.  Default to user-only-writable for all file types.
  121. DIRMODE=    755
  122. EXEMODE=    755
  123. FILEMODE=    644
  124.  
  125. # configure script arguments
  126. CONFIG_ARGS=    @CONFIG_ARGS@
  127.  
  128.  
  129. # Subdirectories with code
  130. SRCDIRS=     @SRCDIRS@
  131.  
  132. # Other subdirectories
  133. SUBDIRSTOO=    Include Lib Misc Demo
  134.  
  135. # Files and directories to be distributed
  136. CONFIGFILES=    configure configure.in acconfig.h pyconfig.h.in Makefile.pre.in
  137. DISTFILES=    README ChangeLog $(CONFIGFILES)
  138. DISTDIRS=    $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
  139. DIST=        $(DISTFILES) $(DISTDIRS)
  140.  
  141.  
  142. LIBRARY=    @LIBRARY@
  143. LDLIBRARY=      @LDLIBRARY@
  144. BLDLIBRARY=     @BLDLIBRARY@
  145. DLLLIBRARY=    @DLLLIBRARY@
  146. LDLIBRARYDIR=   @LDLIBRARYDIR@
  147. INSTSONAME=    @INSTSONAME@
  148.  
  149.  
  150. LIBS=        @LIBS@
  151. LIBM=        @LIBM@
  152. LIBC=        @LIBC@
  153. SYSLIBS=    $(LIBM) $(LIBC)
  154. SHLIBS=        @SHLIBS@
  155.  
  156. MAINOBJ=    @MAINOBJ@
  157. THREADOBJ=    @THREADOBJ@
  158. DLINCLDIR=    @DLINCLDIR@
  159. DYNLOADFILE=    @DYNLOADFILE@
  160. MACHDEP_OBJS=    @MACHDEP_OBJS@
  161. UNICODE_OBJS=   @UNICODE_OBJS@
  162.  
  163. PYTHON=        python$(EXE)
  164. BUILDPYTHON=    python$(BUILDEXE)
  165.  
  166. # === Definitions added by makesetup ===
  167.  
  168.  
  169. ##########################################################################
  170. # Modules
  171. MODULE_OBJS=    \
  172.         Modules/config.o \
  173.         Modules/getpath.o \
  174.         Modules/main.o \
  175.         Modules/gcmodule.o
  176.  
  177. # Used of signalmodule.o is not available
  178. SIGNAL_OBJS=    @SIGNAL_OBJS@
  179.  
  180.  
  181. ##########################################################################
  182. # Grammar
  183. GRAMMAR_H=    $(srcdir)/Include/graminit.h
  184. GRAMMAR_C=    $(srcdir)/Python/graminit.c
  185. GRAMMAR_INPUT=    $(srcdir)/Grammar/Grammar
  186.  
  187.  
  188. ##########################################################################
  189. # Parser
  190. PGEN=        Parser/pgen$(EXE)
  191.  
  192. POBJS=        \
  193.         Parser/acceler.o \
  194.         Parser/grammar1.o \
  195.         Parser/listnode.o \
  196.         Parser/node.o \
  197.         Parser/parser.o \
  198.         Parser/parsetok.o \
  199.         Parser/bitset.o \
  200.         Parser/metagrammar.o \
  201.         Parser/firstsets.o \
  202.         Parser/grammar.o \
  203.         Parser/pgen.o
  204.  
  205. PARSER_OBJS=    $(POBJS) Parser/myreadline.o Parser/tokenizer.o
  206.  
  207. PGOBJS=        \
  208.         Objects/obmalloc.o \
  209.         Python/mysnprintf.o \
  210.         Parser/tokenizer_pgen.o \
  211.         Parser/printgrammar.o \
  212.         Parser/pgenmain.o
  213.  
  214. PGENOBJS=    $(PGENMAIN) $(POBJS) $(PGOBJS)
  215.  
  216.  
  217. ##########################################################################
  218. # Python
  219. PYTHON_OBJS=    \
  220.         Python/bltinmodule.o \
  221.         Python/exceptions.o \
  222.         Python/ceval.o \
  223.         Python/compile.o \
  224.         Python/codecs.o \
  225.         Python/errors.o \
  226.         Python/frozen.o \
  227.         Python/frozenmain.o \
  228.         Python/future.o \
  229.         Python/getargs.o \
  230.         Python/getcompiler.o \
  231.         Python/getcopyright.o \
  232.         Python/getmtime.o \
  233.         Python/getplatform.o \
  234.         Python/getversion.o \
  235.         Python/graminit.o \
  236.         Python/import.o \
  237.         Python/importdl.o \
  238.         Python/marshal.o \
  239.         Python/modsupport.o \
  240.         Python/mystrtoul.o \
  241.         Python/mysnprintf.o \
  242.         Python/pyfpe.o \
  243.         Python/pystate.o \
  244.         Python/pythonrun.o \
  245.         Python/structmember.o \
  246.         Python/symtable.o \
  247.         Python/sysmodule.o \
  248.         Python/traceback.o \
  249.         Python/getopt.o \
  250.         Python/pystrtod.o \
  251.         Python/$(DYNLOADFILE) \
  252.         $(MACHDEP_OBJS) \
  253.         $(THREADOBJ)
  254.  
  255.  
  256. ##########################################################################
  257. # Objects
  258. OBJECT_OBJS=    \
  259.         Objects/abstract.o \
  260.         Objects/boolobject.o \
  261.         Objects/bufferobject.o \
  262.         Objects/cellobject.o \
  263.         Objects/classobject.o \
  264.         Objects/cobject.o \
  265.         Objects/complexobject.o \
  266.         Objects/descrobject.o \
  267.         Objects/enumobject.o \
  268.         Objects/genobject.o \
  269.         Objects/fileobject.o \
  270.         Objects/floatobject.o \
  271.         Objects/frameobject.o \
  272.         Objects/funcobject.o \
  273.         Objects/intobject.o \
  274.         Objects/iterobject.o \
  275.         Objects/listobject.o \
  276.         Objects/longobject.o \
  277.         Objects/dictobject.o \
  278.         Objects/methodobject.o \
  279.         Objects/moduleobject.o \
  280.         Objects/object.o \
  281.         Objects/obmalloc.o \
  282.         Objects/rangeobject.o \
  283.                 Objects/setobject.o \
  284.         Objects/sliceobject.o \
  285.         Objects/stringobject.o \
  286.         Objects/structseq.o \
  287.         Objects/tupleobject.o \
  288.         Objects/typeobject.o \
  289.         Objects/weakrefobject.o \
  290.         $(UNICODE_OBJS)
  291.  
  292.  
  293. ##########################################################################
  294. # objects that get linked into the Python library
  295. LIBRARY_OBJS=    \
  296.         Modules/getbuildinfo.o \
  297.         $(PARSER_OBJS) \
  298.         $(OBJECT_OBJS) \
  299.         $(PYTHON_OBJS) \
  300.         $(MODULE_OBJS) \
  301.         $(SIGNAL_OBJS) \
  302.         $(MODOBJS)
  303.  
  304. #########################################################################
  305. # Rules
  306.  
  307. # Default target
  308. all:        $(BUILDPYTHON) oldsharedmods sharedmods
  309.  
  310. # Build the interpreter
  311. $(BUILDPYTHON):    Modules/$(MAINOBJ) $(LIBRARY) $(LDLIBRARY)
  312.         $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
  313.             Modules/$(MAINOBJ) \
  314.             $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
  315.  
  316. platform: $(BUILDPYTHON)
  317.     $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
  318.  
  319.  
  320. # Build the shared modules
  321. sharedmods: $(BUILDPYTHON)
  322.     case $$MAKEFLAGS in \
  323.     *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
  324.     *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
  325.     esac
  326.  
  327. # buildno should really depend on something like LIBRARY_SRC
  328. buildno: $(PARSER_OBJS) \
  329.         $(OBJECT_OBJS) \
  330.         $(PYTHON_OBJS) \
  331.         $(MODULE_OBJS) \
  332.         $(SIGNAL_OBJS) \
  333.         $(MODOBJS) \
  334.         $(srcdir)/Modules/getbuildinfo.c
  335.     if test -f buildno; then \
  336.         expr `cat buildno` + 1 >buildno1; \
  337.         mv -f buildno1 buildno; \
  338.     else echo 1 >buildno; fi
  339.  
  340. # Build static library
  341. # avoid long command lines, same as LIBRARY_OBJS
  342. $(LIBRARY): $(LIBRARY_OBJS)
  343.     -rm -f $@
  344.     $(AR) cr $@ Modules/getbuildinfo.o
  345.     $(AR) cr $@ $(PARSER_OBJS)
  346.     $(AR) cr $@ $(OBJECT_OBJS)
  347.     $(AR) cr $@ $(PYTHON_OBJS)
  348.     $(AR) cr $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
  349.     $(AR) cr $@ $(MODOBJS)
  350.     $(RANLIB) $@
  351.  
  352. libpython$(VERSION).so: $(LIBRARY_OBJS)
  353.     if test $(INSTSONAME) != $(LDLIBRARY); then \
  354.         $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
  355.         $(LN) -f $(INSTSONAME) $@; \
  356.     else\
  357.         $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
  358.     fi
  359.  
  360. libpython$(VERSION).sl: $(LIBRARY_OBJS)
  361.     $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(LIBC) $(LIBM)
  362.  
  363. # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
  364. # minimal framework (not including the Lib directory and such) in the current
  365. # directory.
  366. RESSRCDIR=$(srcdir)/Mac/OSXResources/framework
  367. $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
  368.         $(LIBRARY) \
  369.         $(RESSRCDIR)/Info.plist \
  370.                 $(RESSRCDIR)/version.plist \
  371.                 $(RESSRCDIR)/English.lproj/InfoPlist.strings
  372.     $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
  373.     libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \
  374.         @LIBTOOL_CRUFT@
  375.     $(INSTALL) -d -m $(DIRMODE)  \
  376.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
  377.     $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
  378.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
  379.     $(INSTALL_DATA) $(RESSRCDIR)/version.plist \
  380.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/version.plist
  381.     $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \
  382.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj/InfoPlist.strings
  383.     $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
  384.     $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
  385.     $(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers
  386.     $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
  387.  
  388. # This rule builds the Cygwin Python DLL and import library if configured
  389. # for a shared core library; otherwise, this rule is a noop.
  390. $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
  391.     if test -n "$(DLLLIBRARY)"; then \
  392.         $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
  393.             $(LIBS) $(MODLIBS) $(SYSLIBS); \
  394.     else true; \
  395.     fi
  396.  
  397.  
  398. oldsharedmods: $(SHAREDMODS)
  399.  
  400.  
  401. Makefile Modules/config.c: Makefile.pre \
  402.                 $(srcdir)/Modules/config.c.in \
  403.                 $(MAKESETUP) \
  404.                 Modules/Setup.config \
  405.                 Modules/Setup \
  406.                 Modules/Setup.local
  407.     $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
  408.                 -s Modules \
  409.                 Modules/Setup.config \
  410.                 Modules/Setup.local \
  411.                 Modules/Setup
  412.     @mv config.c Modules
  413.     @echo "The Makefile was updated, you may need to re-run make."
  414.  
  415.  
  416. Modules/Setup: $(srcdir)/Modules/Setup.dist
  417.     @if test -f Modules/Setup; then \
  418.         echo "-----------------------------------------------"; \
  419.         echo "Modules/Setup.dist is newer than Modules/Setup;"; \
  420.         echo "check to make sure you have all the updates you"; \
  421.         echo "need in your Modules/Setup file."; \
  422.         echo "Usually, copying Setup.dist to Setup will work."; \
  423.         echo "-----------------------------------------------"; \
  424.     fi
  425.  
  426. ############################################################################
  427. # Special rules for object files
  428.  
  429. Modules/getbuildinfo.o: $(srcdir)/Modules/getbuildinfo.c buildno
  430.     $(CC) -c $(PY_CFLAGS) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
  431.  
  432. Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
  433.     $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
  434.         -DPREFIX='"$(prefix)"' \
  435.         -DEXEC_PREFIX='"$(exec_prefix)"' \
  436.         -DVERSION='"$(VERSION)"' \
  437.         -DVPATH='"$(VPATH)"' \
  438.         -o $@ $(srcdir)/Modules/getpath.c
  439.  
  440. Modules/ccpython.o: $(srcdir)/Modules/ccpython.cc
  441.     $(CXX) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/ccpython.cc
  442.  
  443.  
  444. $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
  445.         -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
  446.  
  447. $(PGEN):    $(PGENOBJS)
  448.         $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
  449.  
  450. Parser/grammar.o:    $(srcdir)/Parser/grammar.c \
  451.                 $(srcdir)/Include/token.h \
  452.                 $(srcdir)/Include/grammar.h
  453. Parser/metagrammar.o:    $(srcdir)/Parser/metagrammar.c
  454.  
  455. Parser/tokenizer_pgen.o:    $(srcdir)/Parser/tokenizer.c
  456.  
  457.  
  458. Python/compile.o Python/symtable.o: $(GRAMMAR_H)
  459.  
  460. Python/getplatform.o: $(srcdir)/Python/getplatform.c
  461.         $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
  462.  
  463. Python/importdl.o: $(srcdir)/Python/importdl.c
  464.         $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
  465.  
  466. Objects/unicodectype.o:    $(srcdir)/Objects/unicodectype.c \
  467.                 $(srcdir)/Objects/unicodetype_db.h
  468.  
  469. ############################################################################
  470. # Header files
  471.  
  472. PYTHON_HEADERS= \
  473.         Include/Python.h \
  474.         Include/abstract.h \
  475.         Include/boolobject.h \
  476.         Include/bufferobject.h \
  477.         Include/ceval.h \
  478.         Include/classobject.h \
  479.         Include/cobject.h \
  480.         Include/codecs.h \
  481.         Include/compile.h \
  482.         Include/complexobject.h \
  483.         Include/descrobject.h \
  484.         Include/dictobject.h \
  485.         Include/enumobject.h \
  486.         Include/genobject.h \
  487.         Include/fileobject.h \
  488.         Include/floatobject.h \
  489.         Include/funcobject.h \
  490.         Include/import.h \
  491.         Include/intobject.h \
  492.         Include/intrcheck.h \
  493.         Include/iterobject.h \
  494.         Include/listobject.h \
  495.         Include/longobject.h \
  496.         Include/methodobject.h \
  497.         Include/modsupport.h \
  498.         Include/moduleobject.h \
  499.         Include/object.h \
  500.         Include/objimpl.h \
  501.         Include/patchlevel.h \
  502.         Include/pydebug.h \
  503.         Include/pyerrors.h \
  504.         Include/pyfpe.h \
  505.         Include/pymem.h \
  506.         Include/pyport.h \
  507.         Include/pystate.h \
  508.         Include/pythonrun.h \
  509.         Include/rangeobject.h \
  510.                 Include/setobject.h \
  511.         Include/sliceobject.h \
  512.         Include/stringobject.h \
  513.         Include/structseq.h \
  514.         Include/structmember.h \
  515.         Include/symtable.h \
  516.         Include/sysmodule.h \
  517.         Include/traceback.h \
  518.         Include/tupleobject.h \
  519.         Include/unicodeobject.h \
  520.         Include/weakrefobject.h \
  521.         pyconfig.h
  522.  
  523. $(LIBRARY_OBJS) $(MODOBJS) Modules/$(MAINOBJ): $(PYTHON_HEADERS)
  524.  
  525.  
  526. ######################################################################
  527.  
  528. # Test the interpreter (twice, once without .pyc files, once with)
  529. # In the past, we've had problems where bugs in the marshalling or
  530. # elsewhere caused bytecode read from .pyc files to behave differently
  531. # than bytecode generated directly from a .py source file.  Sometimes
  532. # the bytecode read from a .pyc file had the bug, somtimes the directly
  533. # generated bytecode.  This is sometimes a very shy bug needing a lot of
  534. # sample data.
  535.  
  536. TESTOPTS=    -l
  537. TESTPROG=    $(srcdir)/Lib/test/regrtest.py
  538. TESTPYTHON=    $(RUNSHARED) ./$(BUILDPYTHON) -E -tt
  539. test:        all platform
  540.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  541.         -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
  542.         $(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
  543.  
  544. testall:    all platform
  545.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  546.         -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall
  547.         $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall
  548.  
  549. QUICKTESTOPTS=    $(TESTOPTS) -x test_thread test_signal test_strftime \
  550.         test_unicodedata test_re test_sre test_select test_poll \
  551.         test_linuxaudiodev test_struct test_sunaudiodev test_zlib
  552. quicktest:    all platform
  553.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  554.         -$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
  555.         $(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
  556.  
  557. MEMTESTOPTS=    $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \
  558.         test_longexp
  559. memtest:    all platform
  560.         -rm -f $(srcdir)/Lib/test/*.py[co]
  561.         -$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
  562.         $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
  563.  
  564. # Install everything
  565. install:    altinstall bininstall maninstall
  566.  
  567. # Install almost everything without disturbing previous versions
  568. altinstall:    altbininstall libinstall inclinstall libainstall \
  569.                 sharedinstall oldsharedinstall
  570.  
  571. # Install shared libraries enabled by Setup
  572. DESTDIRS=    $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
  573.  
  574. oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
  575.         @for i in X $(SHAREDMODS); do \
  576.           if test $$i != X; then \
  577.             echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
  578.             $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
  579.           fi; \
  580.         done
  581.  
  582. $(DESTSHARED):
  583.         @for i in $(DESTDIRS); \
  584.         do \
  585.             if test ! -d $(DESTDIR)$$i; then \
  586.                 echo "Creating directory $$i"; \
  587.                 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  588.             else    true; \
  589.             fi; \
  590.         done
  591.  
  592.  
  593. # Install the interpreter (by creating a hard link to python$(VERSION))
  594. bininstall:    altbininstall
  595.     -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \
  596.     then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
  597.     else true; \
  598.     fi
  599.     (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON))
  600.  
  601. # Install the interpreter with $(VERSION) affixed
  602. # This goes into $(exec_prefix)
  603. altbininstall:    $(BUILDPYTHON)
  604.     @if test "$(PYTHONFRAMEWORKDIR)" != no-framework; then \
  605.         if test ! -f $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current/Resources/Info.plist; then \
  606.             echo 'Framework build: use "make frameworkinstall" in stead of "make install"'; \
  607.             exit 1; \
  608.         fi; \
  609.     fi
  610.     @for i in $(BINDIR) $(LIBDIR); \
  611.     do \
  612.         if test ! -d $(DESTDIR)$$i; then \
  613.             echo "Creating directory $$i"; \
  614.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  615.         else    true; \
  616.         fi; \
  617.     done
  618.     $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
  619.     if test -f libpython$(VERSION)$(SO); then \
  620.         if test "$(SO)" = .dll; then \
  621.             $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(BINDIR); \
  622.         else \
  623.             $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
  624.             if test libpython$(VERSION)$(SO) != $(INSTSONAME); then \
  625.                 (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) libpython$(VERSION)$(SO)); \
  626.             fi \
  627.         fi; \
  628.     else    true; \
  629.     fi
  630.  
  631. # Install the manual page
  632. maninstall:
  633.     @for i in $(MANDIR) $(MANDIR)/man1; \
  634.     do \
  635.         if test ! -d $(DESTDIR)$$i; then \
  636.             echo "Creating directory $$i"; \
  637.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  638.         else    true; \
  639.         fi; \
  640.     done
  641.     $(INSTALL_DATA) $(srcdir)/Misc/python.man \
  642.         $(DESTDIR)$(MANDIR)/man1/python.1
  643.  
  644. # Install the library
  645. PLATDIR=    plat-$(MACHDEP)
  646. EXTRAPLATDIR= @EXTRAPLATDIR@
  647. EXTRAMACHDEPPATH=@EXTRAMACHDEPPATH@
  648. MACHDEPS=    $(PLATDIR) $(EXTRAPLATDIR)
  649. XMLLIBSUBDIRS=  xml xml/dom xml/parsers xml/sax
  650. PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \
  651.     plat-mac/lib-scriptpackages/_builtinSuites \
  652.     plat-mac/lib-scriptpackages/CodeWarrior \
  653.     plat-mac/lib-scriptpackages/Explorer \
  654.     plat-mac/lib-scriptpackages/Finder \
  655.     plat-mac/lib-scriptpackages/Netscape \
  656.     plat-mac/lib-scriptpackages/StdSuites \
  657.     plat-mac/lib-scriptpackages/SystemEvents \
  658.     plat-mac/lib-scriptpackages/Terminal
  659. PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
  660. LIBSUBDIRS=    lib-old lib-tk site-packages test test/output test/data \
  661.         test/decimaltestdata \
  662.         encodings email email/test email/test/data compiler hotshot \
  663.         logging bsddb bsddb/test csv idlelib idlelib/Icons \
  664.         distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
  665.         curses $(MACHDEPS)
  666. libinstall:    $(BUILDPYTHON) $(srcdir)/Lib/$(PLATDIR)
  667.     @for i in $(SCRIPTDIR) $(LIBDEST); \
  668.     do \
  669.         if test ! -d $(DESTDIR)$$i; then \
  670.             echo "Creating directory $$i"; \
  671.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  672.         else    true; \
  673.         fi; \
  674.     done
  675.     @for d in $(LIBSUBDIRS); \
  676.     do \
  677.         a=$(srcdir)/Lib/$$d; \
  678.         if test ! -d $$a; then continue; else true; fi; \
  679.         b=$(LIBDEST)/$$d; \
  680.         if test ! -d $(DESTDIR)$$b; then \
  681.             echo "Creating directory $$b"; \
  682.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
  683.         else    true; \
  684.         fi; \
  685.     done
  686.     @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc; \
  687.     do \
  688.         if test -x $$i; then \
  689.             $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
  690.             echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
  691.         else \
  692.             $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
  693.             echo $(INSTALL_DATA) $$i $(LIBDEST); \
  694.         fi; \
  695.     done
  696.     @for d in $(LIBSUBDIRS); \
  697.     do \
  698.         a=$(srcdir)/Lib/$$d; \
  699.         if test ! -d $$a; then continue; else true; fi; \
  700.         b=$(LIBDEST)/$$d; \
  701.         for i in $$a/*; \
  702.         do \
  703.             case $$i in \
  704.             *CVS) ;; \
  705.             *.py[co]) ;; \
  706.             *.orig) ;; \
  707.             *~) ;; \
  708.             *) \
  709.                 if test -d $$i; then continue; fi; \
  710.                 if test -x $$i; then \
  711.                     echo $(INSTALL_SCRIPT) $$i $$b; \
  712.                     $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
  713.                 else \
  714.                     echo $(INSTALL_DATA) $$i $$b; \
  715.                     $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
  716.                 fi;; \
  717.             esac; \
  718.         done; \
  719.     done
  720.     $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
  721.     PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
  722.         ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
  723.         -d $(LIBDEST) -f \
  724.         -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  725.     PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  726.         ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
  727.         -d $(LIBDEST) -f \
  728.         -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  729.     -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
  730.         ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
  731.         -d $(LIBDEST)/site-packages -f \
  732.         -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  733.     -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  734.         ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
  735.         -d $(LIBDEST)/site-packages -f \
  736.         -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  737.  
  738. # Create the PLATDIR source directory, if one wasn't distributed..
  739. $(srcdir)/Lib/$(PLATDIR):
  740.     mkdir $(srcdir)/Lib/$(PLATDIR)
  741.     cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
  742.     export PATH; PATH="`pwd`:$$PATH"; \
  743.     export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
  744.     export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
  745.     export EXE; EXE="$(BUILDEXE)"; \
  746.     cd $(srcdir)/Lib/$(PLATDIR); ./regen
  747.  
  748. # Install the include files
  749. INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
  750. inclinstall:
  751.     @for i in $(INCLDIRSTOMAKE); \
  752.     do \
  753.         if test ! -d $(DESTDIR)$$i; then \
  754.             echo "Creating directory $$i"; \
  755.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  756.         else    true; \
  757.         fi; \
  758.     done
  759.     @for i in $(srcdir)/Include/*.h; \
  760.     do \
  761.         echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
  762.         $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
  763.     done
  764.     $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
  765.  
  766. # Install the library and miscellaneous stuff needed for extending/embedding
  767. # This goes into $(exec_prefix)
  768. LIBPL=        $(LIBP)/config
  769. libainstall:    all
  770.     @for i in $(LIBDIR) $(LIBP) $(LIBPL); \
  771.     do \
  772.         if test ! -d $(DESTDIR)$$i; then \
  773.             echo "Creating directory $$i"; \
  774.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  775.         else    true; \
  776.         fi; \
  777.     done
  778.     @if test -d $(LIBRARY); then :; else \
  779.         if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
  780.             if test "$(SO)" = .dll; then \
  781.                 $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
  782.             else \
  783.                 $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
  784.                 $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
  785.             fi; \
  786.         else \
  787.             echo Skip install of $(LIBRARY) - use make frameworkinstall; \
  788.         fi; \
  789.     fi
  790.     $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
  791.     $(INSTALL_DATA) Modules/$(MAINOBJ) $(DESTDIR)$(LIBPL)/$(MAINOBJ)
  792.     $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
  793.     $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
  794.     $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
  795.     $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
  796.     $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
  797.     $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
  798.     $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
  799.     @if [ -s Modules/python.exp -a \
  800.         "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
  801.         echo; echo "Installing support files for building shared extension modules on AIX:"; \
  802.         $(INSTALL_DATA) Modules/python.exp        \
  803.                 $(DESTDIR)$(LIBPL)/python.exp;        \
  804.         echo; echo "$(LIBPL)/python.exp";        \
  805.         $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix    \
  806.                 $(DESTDIR)$(LIBPL)/makexp_aix;        \
  807.         echo "$(LIBPL)/makexp_aix";            \
  808.         $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix    \
  809.                 $(DESTDIR)$(LIBPL)/ld_so_aix;        \
  810.         echo "$(LIBPL)/ld_so_aix";            \
  811.         echo; echo "See Misc/AIX-NOTES for details.";    \
  812.     else true; \
  813.     fi
  814.     @case "$(MACHDEP)" in beos*) \
  815.         echo; echo "Installing support files for building shared extension modules on BeOS:"; \
  816.         $(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README;    \
  817.         echo; echo "$(LIBPL)/README";            \
  818.         $(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \
  819.         echo "$(LIBPL)/ar_beos";            \
  820.         $(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \
  821.         echo "$(LIBPL)/ld_so_beos";            \
  822.         echo; echo "See Misc/BeOS-NOTES for details.";    \
  823.         ;; \
  824.     esac
  825.  
  826. # Install the dynamically loadable modules
  827. # This goes into $(exec_prefix)
  828. sharedinstall:
  829.     $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
  830.            --prefix=$(prefix) \
  831.         --install-scripts=$(BINDIR) \
  832.         --install-platlib=$(DESTSHARED) \
  833.         --root=/$(DESTDIR)
  834.  
  835. # Here are a couple of targets for MacOSX again, to install a full
  836. # framework-based Python. frameworkinstall installs everything, the
  837. # subtargets install specific parts. Much of the actual work is offloaded to
  838. # the Makefile in Mac/OSX
  839. #
  840. frameworkinstall: frameworkinstallframework \
  841.     frameworkinstallapps frameworkinstallunixtools
  842.  
  843. # On install, we re-make the framework
  844. # structure in the install location, /Library/Frameworks/ or the argument to
  845. # --enable-framework. If --enable-framework has been specified then we have
  846. # automatically set prefix to the location deep down in the framework, so we
  847. # only have to cater for the structural bits of the framework.
  848.  
  849. frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
  850.  
  851. frameworkinstallstructure:    $(LDLIBRARY)
  852.     @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
  853.         echo Not configured with --enable-framework; \
  854.         exit 1; \
  855.     else true; \
  856.     fi
  857.     @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
  858.         if test ! -d $(DESTDIR)$$i; then \
  859.             echo "Creating directory $(DESTDIR)$$i"; \
  860.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  861.         else    true; \
  862.         fi; \
  863.     done
  864.     $(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers
  865.     $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(DESTDIR)$(prefix)/Resources/Info.plist
  866.     $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(DESTDIR)$(prefix)/Resources/version.plist
  867.     $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \
  868.         $(DESTDIR)$(prefix)/Resources/English.lproj/InfoPlist.strings
  869.     $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
  870.     $(LN) -fsn Versions/Current/Python $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Python
  871.     $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
  872.     $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
  873.     $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
  874.  
  875. # This installs Mac/Lib into the framework
  876. frameworkinstallmaclib:
  877.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \
  878.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  879.         srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \
  880.         DESTDIR=$(DESTDIR)
  881.  
  882. # This installs the IDE, the Launcher and other apps into /Applications
  883. frameworkinstallapps:
  884.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \
  885.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  886.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix)
  887.  
  888. # This install the unix python and pythonw tools in /usr/local/bin
  889. frameworkinstallunixtools:
  890.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \
  891.         DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  892.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix)
  893.  
  894. # This installs the Demos and Tools into the applications directory.
  895. # It is not part of a normal frameworkinstall
  896. frameworkinstallextras:
  897.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \
  898.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  899.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR)
  900.  
  901. # This installs a few of the useful scripts in Tools/scripts
  902. scriptsinstall:
  903.     SRCDIR=$(srcdir) $(RUNSHARED) \
  904.     ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \
  905.     --prefix=$(prefix) \
  906.     --install-scripts=$(BINDIR) \
  907.     --root=/$(DESTDIR)
  908.  
  909. # Build the toplevel Makefile
  910. Makefile.pre: Makefile.pre.in config.status
  911.     CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
  912.     $(MAKE) -f Makefile.pre Makefile
  913.  
  914. # Run the configure script.
  915. config.status:    $(srcdir)/configure
  916.     $(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
  917.  
  918. .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
  919.  
  920. # Some make's put the object file in the current directory
  921. .c.o:
  922.     $(CC) -c $(PY_CFLAGS) -o $@ $<
  923.  
  924. # Rerun configure with the same options as it was run last time,
  925. # provided the config.status script exists
  926. recheck:
  927.     $(SHELL) config.status --recheck
  928.     $(SHELL) config.status
  929.  
  930. # Rebuild the configure script from configure.in; also rebuild pyconfig.h.in
  931. autoconf:
  932.     (cd $(srcdir); autoconf)
  933.     (cd $(srcdir); autoheader)
  934.  
  935. # Create a tags file for vi
  936. tags::
  937.     cd $(srcdir); \
  938.     ctags -w -t Include/*.h; \
  939.     for i in $(SRCDIRS); do ctags -w -t -a $$i/*.[ch]; \
  940.     done; \
  941.     sort -o tags tags
  942.  
  943. # Create a tags file for GNU Emacs
  944. TAGS::
  945.     cd $(srcdir); \
  946.     etags Include/*.h; \
  947.     for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
  948.  
  949. # Sanitation targets -- clean leaves libraries, executables and tags
  950. # files, which clobber removes those as well
  951.  
  952. clean:
  953.     find . -name '*.o' -exec rm -f {} ';'
  954.     find . -name '*.s[ol]' -exec rm -f {} ';'
  955.     find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
  956.  
  957. clobber: clean
  958.     -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
  959.         tags TAGS \
  960.         config.cache config.log pyconfig.h Modules/config.c
  961.     -rm -rf build platform
  962.     -rm -rf $(PYTHONFRAMEWORKDIR)
  963.  
  964. # Make things extra clean, before making a distribution:
  965. # remove all generated files, even Makefile[.pre]
  966. distclean: clobber
  967.     -rm -f core Makefile Makefile.pre buildno config.status \
  968.         Modules/Setup Modules/Setup.local Modules/Setup.config
  969.     find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
  970.                -o -name '[@,#]*' -o -name '*.old' \
  971.                -o -name '*.orig' -o -name '*.rej' \
  972.                -o -name '*.bak' ')' \
  973.                -exec rm -f {} ';'
  974.  
  975. # Check for smelly exported symbols (not starting with Py/_Py)
  976. smelly: all
  977.     nm -p $(LIBRARY) | \
  978.         sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
  979.  
  980. # Find files with funny names
  981. funny:
  982.     find $(DISTDIRS) -type d \
  983.         -o -name '*.[chs]' \
  984.         -o -name '*.py' \
  985.         -o -name '*.doc' \
  986.         -o -name '*.sty' \
  987.         -o -name '*.bib' \
  988.         -o -name '*.dat' \
  989.         -o -name '*.el' \
  990.         -o -name '*.fd' \
  991.         -o -name '*.in' \
  992.         -o -name '*.tex' \
  993.         -o -name '*,[vpt]' \
  994.         -o -name 'Setup' \
  995.         -o -name 'Setup.*' \
  996.         -o -name README \
  997.         -o -name Makefile \
  998.         -o -name ChangeLog \
  999.         -o -name Repository \
  1000.         -o -name Root \
  1001.         -o -name Entries \
  1002.         -o -name Tag \
  1003.         -o -name tags \
  1004.         -o -name TAGS \
  1005.         -o -name .cvsignore \
  1006.         -o -name MANIFEST \
  1007.         -o -print
  1008.  
  1009. # Dependencies
  1010.  
  1011. Python/thread.o: @THREADHEADERS@
  1012.  
  1013. # Declare targets that aren't real files
  1014. .PHONY: all sharedmods oldsharedmods test quicktest memtest
  1015. .PHONY: install altinstall oldsharedinstall bininstall altbininstall
  1016. .PHONY: maninstall libinstall inclinstall libainstall sharedinstall
  1017. .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
  1018. .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
  1019. .PHONY: recheck autoconf clean clobber distclean smelly funny
  1020.  
  1021. # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
  1022.